트러블슈팅 - UTF8mb4 인코딩 이슈 및 개발 중 이슈 모음
NOTE
Onz 서비스 운영/개발 중 겪은 이슈와 해결 과정을 정리했다.
RDS 한글 깨짐 (UTF8mb4 변경)
서비스 운영 중 칵테일 이름/재료 등 한글 데이터가 깨져서 저장되는 문제가 발생했다.
- 원인: RDS(MariaDB)의 기본 문자셋이
UTF-8로 설정되어 있어 일부 멀티바이트 문자(이모지, 특정 한글 조합 등)를 온전히 저장하지 못했다. - 해결 과정:
- RDS 파라미터 그룹에서 문자셋을
utf8mb4로 변경 후 재부팅 - 그래도 반영되지 않는 일부 테이블은 DB에 직접 접속해 테이블/컬럼 단위로 문자셋을 재변경
- RDS 파라미터 그룹에서 문자셋을
범용적으로 재사용 가능한 utf8mb4 변경 절차(파라미터 그룹 설정 + ALTER TABLE/ALTER DATABASE SQL)는 별도 문서로 정리했다.
- [[MySQL] MySQL-MariaDB utf8mb4 문자셋 변경 절차 - 핵심 개념 및 특징 정리]
개발 중 발생한 이슈 5가지
Onz 개발 중 아래 5개 이슈를 겪었고, 원인·해결 과정 자체는 프로젝트 종속적이지 않은 재사용 가능한 지식이라 별도 문서로 정리했다.
Map조회 시NullPointerException- 외래 키(FK)가 걸린 컬럼 삭제 순서 문제
Long상수 초기화 시 컴파일 오류- 칵테일 정보 정규화 이후 반정규화 필요성 재검토
- 초기화 로직에서 발생한 JPA
StaleObjectStateException
각 이슈의 원인 분석과 해결 코드는 아래 문서에 정리했다.
- [[Java] Java·JPA·SQL 실무 트러블슈팅 모음 (NPE·FK 제약 - 핵심 개념 및 특징 정리]
관련 문서
- Onz 프로젝트 소개 및 기획 — 이 이슈들이 발생한 Onz 프로젝트의 전체 기획
- (MySQL) MySQL-MariaDB utf8mb4 문자셋 변경 절차 - 핵심 개념 및 특징 정리 — 위 RDS 한글 깨짐 문제를 해결한 utf8mb4 변경 절차를 재사용 가능하도록 일반화한 문서
- [(Java) Java·JPA·SQL 실무 트러블슈팅 모음 (NPE·FK 제약·상수·정규화·영속성 예외)](../../../개발%20(CS)/언어/JAVA/[Java]%20Java·JPA·SQL%20실무%20트러블슈팅%20모음%20(NPE·FK%20제약%20-%20핵심%20개념%20및%20특징%20정리.md) — 위에서 언급한 개발 중 이슈 5가지의 원인 분석과 해결 코드 상세